package com.molichuxing.gateway.bff.order.entity.request.create;

import com.molichuxing.framework.dto.RequestRootDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.List;

/**
 * 线下支付vo
 * 
 * @author zoumingyu
 * @date 2019年9月7日
 *
 */
@Data
public class PaymentOfflineCreateVo extends RequestRootDto {

	private static final long serialVersionUID = -4150642498113319674L;
	@ApiModelProperty(value = "流水编号")
	@NotBlank(message = "流水编号不能为空")
	private String serialNumber;

	@ApiModelProperty(value = "还款类型(1:经销商, 2:用户)")
	@NotNull(message = "还款类型不能为空")
	private Integer repayType;

	@ApiModelProperty(value = "付款人")
	@NotNull(message = "付款人不能为空")
	private String payName;

	@ApiModelProperty(value = "付款银行账号")
	@NotNull(message = "付款银行账号不能为空")
	private String payBankAccount;

	@ApiModelProperty(value = "付款金额")
	@NotNull(message = "付款金额不能为空")
	private BigDecimal payAmount;

	@ApiModelProperty(value = "付款时间")
	@NotNull(message = "付款时间不能为空")
	private String payTime;

	@ApiModelProperty(value = "经销商id")
	private Integer dealerId;

	@ApiModelProperty(value = "收款公司")
	@NotNull(message = "收款公司不能为空")
	private String receiptCompany;

	@ApiModelProperty(value = "收款银行账号")
	@NotNull(message = "收款银行账号不能为空")
	private String receiptBankAccount;

	@ApiModelProperty(value = "收款开户行")
	@NotNull(message = "收款开户行不能为空")
	private String receiptBank;

	@ApiModelProperty(value = "流水凭证")
	@NotNull(message = "流水凭证不能为空")
	@Size(min = 1, max = 5, message = "流水凭证最少1张,最大5张")
	private List<String> voucherImgs;

	@ApiModelProperty(value = "还款信息")
	@NotNull(message = "还款信息不能为空")
	private List<PaymentOfflineScheduleCreateVo> offlineOrdersList;
}
